#ifndef PRIMITIVES_H
#define PRIMITIVES_H

#include "atoms.h"
#include "helperMacros.h"
#include "enumType.h"
#include "typeMap.h"
#include "typeSymbol.h"
#include "typeFormatfn.h"


#define AWAENUMTYPE			    \
  CONCATSEQ(ATOM_ENUMTYPE, CONCATSEQ( CONCATSEQ( PENUMTYPE, NPENUMTYPE), ENUMTYPE_UNSIGNED ) )
/* 	    CONCATSEQ(, \ */
/* 		      CONCATSEQ( POINTER(ENUMTYPE_POINTER), \ */
/* 				 POINTER(POINTER(ENUMTYPE_POINTER)) ) )	) */




#define AWATYPEMAP	\
  CONCATSEQ(ATOM_TYPEMAP, CONCATSEQ( CONCATSEQ( PTYPEMAP, NPTYPEMAP), TYPEMAP_UNSIGNED ) )
/* 	    CONCATSEQ(,			                    CONCATSEQ( TYPEMAP_PNTER, \ */
/* 				 BOOST_PP_REPEAT( BOOST_PP_SEQ_SIZE(TYPEMAP_PNTER), POINTERVERSION, TYPEMAP_PNTER) ) ) ) */





#define AWATYPESYMBOL   \
  CONCATSEQ(ATOM_TYPESYMBOL, CONCATSEQ( CONCATSEQ( PTYPESYMBOL, NPTYPESYMBOL), TYPESYMBOL_UNSIGNED ) )
/* 	    CONCATSEQ(,			                    CONCATSEQ( POINTER(TYPESYMBOL_POINTER), POINTER(POINTER(TYPESYMBOL_POINTER)))) ) */




#define AWATYPEFORMATFN \
  CONCATSEQ(ATOM_FORMATFN, CONCATSEQ( CONCATSEQ( PTYPEFORMATFN, NPTYPEFORMATFN), TYPEFORMATFN_UNSIGNED ) )
/* 	    CONCATSEQ( */
/* 	              CONCATSEQ( FORMATFN_PNTER,       \ */
/* 		                 BOOST_PP_REPEAT(BOOST_PP_SEQ_SIZE(FORMATFN_PNTER), POINTERVERSION, FORMATFN_PNTER) ) ) ) \ */
/* 	    ) */


#endif
